MongoDB তে Horizontal Scaling এবং Sharding কনফিগারেশন

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - MongoDB তে Replica Sets এবং Sharding
141

MongoDB একটি NoSQL ডেটাবেস যা স্কেলেবিলিটি এবং পারফরম্যান্স বৃদ্ধির জন্য হরিজেন্টাল স্কেলিং (Horizontal Scaling) এবং শার্ডিং (Sharding) এর মতো আধুনিক কনফিগারেশন সমর্থন করে। যখন ডেটাবেসের আকার বড় হয়ে যায় এবং একক সার্ভারের মধ্যে পুরো ডেটাবেসের তথ্য রাখা কঠিন হয়ে পড়ে, তখন MongoDB এ হরিজেন্টাল স্কেলিং এবং শার্ডিং ব্যবহার করা হয়।

MongoDB তে হরিজেন্টাল স্কেলিং মানে হচ্ছে, একাধিক সার্ভার বা ক্লাস্টারের মাধ্যমে ডেটাবেসের লোড ভাগ করা, এবং শার্ডিং হল ডেটাবেসের ডেটা ভাগ করে কয়েকটি ভিন্ন শার্ডে সংরক্ষণ করার প্রক্রিয়া। এই কনফিগারেশনগুলি MongoDB কে বড় আকারের ডেটাবেস ব্যবস্থাপনায় সহায়ক করে।


MongoDB তে Horizontal Scaling এবং Sharding

Horizontal Scaling কি?

Horizontal Scaling বা Scale Out হল একটি পদ্ধতি যেখানে একটি একক ডেটাবেস সার্ভারের পরিবর্তে একাধিক সার্ভার বা ক্লাস্টার ব্যবহার করে লোডের ভার ভাগ করা হয়। এর ফলে MongoDB অনেক বেশি সংখ্যক কনেকশন হ্যান্ডেল করতে পারে এবং আরো বেশি ডেটা স্টোর করতে সক্ষম হয়।

Sharding কি?

Sharding MongoDB তে ডেটাবেসের ডেটাকে বিভিন্ন সার্ভারে ভাগ করার প্রক্রিয়া। এতে MongoDB ডেটাবেসে ডেটা ভাগ করা হয় (shard) এবং প্রতিটি শার্ডের নিজস্ব ডেটা থাকে। এই শার্ডিং কনফিগারেশন MongoDB তে ডেটাবেস পারফরম্যান্স এবং স্কেলেবিলিটি উন্নত করে, বিশেষত যখন আপনার ডেটাবেসের আকার বৃহৎ হয়।


MongoDB তে Sharding কনফিগারেশন

MongoDB তে শার্ডিং কনফিগারেশন করার জন্য কিছু পদক্ষেপ অনুসরণ করতে হয়। নিচে ধাপে ধাপে MongoDB তে শার্ডিং কনফিগারেশন করার প্রক্রিয়া দেওয়া হয়েছে।

১. Sharded Cluster তৈরি করা

MongoDB তে শার্ডিং কনফিগারেশন করতে প্রথমে একটি Sharded Cluster তৈরি করতে হবে, যা তিনটি মূল উপাদানে বিভক্ত:

  1. Shards: এখানে ডেটা ভাগ হয়ে থাকে।
  2. Config Servers: এই সার্ভারগুলো ক্লাস্টারের মেটাডেটা সংরক্ষণ করে।
  3. Mongos: এটি একটি রুট প্রসেসর, যা ক্লায়েন্ট এবং শার্ডগুলোর মধ্যে যোগাযোগ স্থাপন করে।

২. Shard Servers কনফিগারেশন

প্রথমে আপনার শার্ড সার্ভার তৈরি করতে হবে। একটি শার্ড সার্ভার MongoDB এর একটি ইনস্ট্যান্স যেখানে ডেটা সংরক্ষিত থাকে। আপনি একাধিক শার্ড সার্ভার রাখতে পারেন।

shard server কনফিগারেশন:

mongod --shardsvr --replSet rsShard1 --bind_ip localhost --port 27018

৩. Config Servers কনফিগারেশন

Config servers MongoDB ক্লাস্টারের মেটাডেটা এবং শার্ড সম্পর্কিত তথ্য সংরক্ষণ করে। MongoDB তে কমপক্ষে তিনটি config server থাকা প্রয়োজন।

config server কনফিগারেশন:

mongod --configsvr --replSet rsConfig --bind_ip localhost --port 27019

৪. Mongos কনফিগারেশন

Mongos হল একটি রুট সার্ভার যা ক্লায়েন্টদের শার্ড সিস্টেমের সঙ্গে যোগাযোগ করতে সহায়তা করে। এটি ক্লায়েন্টের রিকোয়েস্টগুলো শার্ডে ডিস্ট্রিবিউট করে।

mongos কনফিগারেশন:

mongos --configdb rsConfig/localhost:27019 --bind_ip localhost --port 27020

৫. শার্ডিং চালু করা

MongoDB ক্লাস্টারে শার্ডিং চালু করতে নিম্নলিখিত কমান্ড ব্যবহার করা হয়:

use admin
sh.enableSharding("myDatabase")

এটি MongoDB তে শার্ডিং সক্ষম করবে। তারপর, আপনি যেকোনো কালেকশন শার্ড করতে পারেন:

sh.shardCollection("myDatabase.myCollection", { "shardKey" : 1 })

এখানে "shardKey" হল সেই ফিল্ড যেটি দ্বারা ডেটা শার্ড করা হবে।


MongoDB তে Horizontal Scaling কনফিগারেশন

MongoDB তে Horizontal Scaling সাধারণত শার্ডিং সিস্টেম ব্যবহার করেই বাস্তবায়ন করা হয়, তবে এটি আরও কিছু পদক্ষেপের মাধ্যমে আরও বেশি সার্ভারের মাধ্যমে ডেটার লোড বিভাজন করে।

১. Replica Sets কনফিগারেশন

MongoDB তে স্কেলিংয়ের জন্য Replica Sets ব্যবহার করা হয়, যা ডেটা কপি তৈরি করে এবং সার্ভারের মধ্যে লোড ব্যালেন্সিং করতে সহায়তা করে।

mongod --replSet rs1 --bind_ip localhost --port 27017

এটি সার্ভারের ডেটা কপি তৈরি করবে এবং একই ডেটা বিভিন্ন সার্ভারে সংরক্ষিত থাকবে।

২. Load Balancing

MongoDB তে লোড ব্যালেন্সিং করা হয় ডেটা ইনসার্ট, আপডেট, এবং রিড অপারেশনের মধ্যে ভারসাম্য রাখতে। এটি একটি হাই পারফরম্যান্স সিস্টেম তৈরি করতে সাহায্য করে।


Java MongoDB ব্যবহার করে Sharding কনফিগারেশন

MongoDB শার্ডিং কনফিগারেশন জাভা অ্যাপ্লিকেশন থেকেও পরিচালনা করা যায়। জাভা MongoDB ড্রাইভার ব্যবহার করে MongoDB শার্ডিং কনফিগারেশন এবং অপারেশন করা যায়।

১. MongoClient এবং Sharded Cluster সংযোগ স্থাপন

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoCollection;
import org.bson.Document;

MongoClient mongoClient = new MongoClient("localhost", 27020); // MongoS address
MongoDatabase database = mongoClient.getDatabase("myDatabase");

MongoCollection<Document> collection = database.getCollection("myCollection");

২. শার্ডিং Enable করা

database.runCommand(new Document("enableSharding", "myDatabase"));
database.runCommand(new Document("shardCollection", "myDatabase.myCollection")
                      .append("key", new Document("shardKey", 1)));

এটি MongoDB তে শার্ডিং সক্ষম করবে এবং myCollection কলেকশনে শার্ডিং করবে।


MongoDB তে Horizontal Scaling এবং Sharding কনফিগারেশন একটি শক্তিশালী উপায় ডেটাবেসের পারফরম্যান্স এবং স্কেলেবিলিটি বাড়ানোর জন্য। শার্ডিং MongoDB তে ডেটার লোড ভাগ করে দেয় এবং একাধিক শার্ডে ডেটা সংরক্ষণের মাধ্যমে উচ্চ পারফরম্যান্স নিশ্চিত করে। Java MongoDB ড্রাইভার ব্যবহার করে MongoDB তে শার্ডিং কনফিগারেশন করা সম্ভব এবং এটি ডেভেলপারদের বড় ডেটাবেস পরিচালনায় সহায়ক। MongoDB তে হরিজেন্টাল স্কেলিং এবং শার্ডিং এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের স্কেলেবিলিটি এবং পারফরম্যান্স উন্নত করতে পারবেন।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...